A conventional microprogram control apparatus comprises a program memory for storing instructions which are programmed by a user and read out as a macroinstruction, a microinstruction memory for storing a series of microinstructions corresponding to each macroinstruction, and a microprogram control unit for controlling the execution of microinstructions.
In operation, an addressed instruction of the program memory is read out as a macroinstruction, and a series of microinstructions corresponding to the read-out macroinstruction are sequentially read out from the microinstruction memory in accordance with address information contained in the read-out macroinstruction.
In general, a conditional branch instruction (hereinafter "micro-branch instruction") is prepared among microinstructions, and a branch condition of the micro-branch instruction is generated by decoding the value and state of internal resources in the microprogram control apparatus. In realizing a read-out macroinstruction in the form of microinstructions corresponding to the read-out macroinstruction, it is necessary to refer to the value and state of a specified internal resource in the microprogram control unit in accordance with a function of the macroinstruction. Therefore, micro-branch conditions of kinds which are required in number to realize macroinstructions supplied by the microprogram control unit must be prepared, so that micro-branch instructions of the same kinds as the micro-branch conditions are prepared.
In this point, a word length of microinstructions which are stored in a microinstruction memory is limited. For this reason, preparing micro-branch instructions of the kind which are greater in number than micro-branch instructions to be identified by the word length is impossible. The word length of the microinstructions is dependent on a hardware limitation of the microprogram control unit. Therefore, it is impossible to increase the word length sufficiently to identify the required number of the micro-branch instructions. In fact, a limited portion of the word length of the micro-branch instructions can be used for information of the branch condition, because a word of the micro-branch instruction includes not only the branch condition, but also an opecode, a branch destination address information, etc. In the following explanation, the portion, to which the branch condition information is assigned, is defined as a micro-branch instruction identifying field.
Accordingly, another conventional microprogram control apparatus is proposed to realize micro-branch instructions the kind which are greater in number than the micro-branch instructions to be identified by the micro-branch instruction identifying field, wherein a bank selecting register, into which an exclusive microinstruction is set, is provided to designate one of a plurality of micro-branch condition banks. Each of the micro-branch condition banks includes a predetermined number of micro-branch conditions, into which whole micro-branch conditions are divided by the number of the micro-branch condition banks.
In operation, the exclusive microinstruction is set in the bank selecting register, so that one of the micro-branch condition banks is designated by the content of the bank selecting register. In the designated micro-branch condition bank, one of the micro-branch conditions is selected by the content of the micro-branch instruction identifying field.
However, there are disadvantages in a microprocessor for the microprogram control system. In particular, highly advanced instructions such as a privilege instruction, a letter-train transferring instruction, etc., in addition to fundamental instructions such as an arithmetic and logic instruction, a transferring instruction, etc., must be executed. For this purpose, a microprogram having a complicated algorithm, in which a number of micro-branch conditions are required, must be described in the microprocessor. Only one micro-branch condition contained in one micro-branch condition bank can be identified by the content of a micro-branch instruction identifying field. This means that the plural micro-branch condition banks are frequently designated one by one, because a number of micro-branch conditions are required. Such a switching-over in the designation of the micro-branch condition bank requires the bank selecting register to be renewed in its content in accordance with the execution of microinstructions. As a result, the number of steps required to execute microinstruction is increased, so that the processing speed of a macroinstruction, which is realized by a series of microinstructions, is lowered, thereby resulting in the degradation of a performance in the microprogram control apparatus.